本文通过未标注文本引入语言建模任务来辅助 NER 领域自适应任务,使用参数生成网络建模跨领域和跨任务,分别得到任务向量和领域向量,实验证明在监督和无监督领域适应上都取得很好的效果。
paper: https://drive.google.com/open?id=1gb0lN7tp0-enXYj1OuLDLPoDGryLWkL_
source: ACL 2019 long paper
code: https://github.com/jiachenwestlake/Cross-Domain_NER
Introduction
命名实体识别(NER)是 NLP 的基本任务。由于标注资源的限制,跨领域的命名实体识别一直是一项具有挑战性的任务。以前的大多数工作都集中在监督场景上,利用源域和目标域的标记数据。这种方法的缺点是没有充分利用无监督信息,而且很多情况下,目标领域的监督数据是很少的。
为了解决这一问题,文章使用跨领域的语言模型(cross-domain LM)作为跨域 NER 的桥连,并设计了一种新颖的参数生成网络。结果表明,文章的方法通过跨域语言模型有效地提取了不同领域之间的差异。该方法可以无监督地进行领域自适应,在无标注数据的目标域做 NER 任务。
Background
Learning task embedding vectors: 在多任务学习中,已经有一些关于任务向量表示(task vector representations)的相关工作。如在多语言 parsing 任务中学习语言向量(language embeddings),这类方法利用任务向量扩充词向量输入,这样就可以把任务特征融合到词向量中。也有通过学习领域向量完成多领域的情感分类任务。但是本文使用领域向量和任务向量并不是为了作为输入,而是为了得到相应的参数(对应本文提出的Parameter Generation Network)。
Model
整体的模型架构如下图:
输入层 输入的数据共有四种: 源领域NER数据、目标领域NER数据(可选)、用于语言模型的源领域和目标领域的未标注数据。得到数据表示的方法是相同的:词向量与字符向量的 CNN 输出拼接在一起。
$$\mathbf{v}_{i}=\left[\mathbf{e}^{w}\left(x_{i}\right) \oplus \operatorname{CNN}\left(\mathbf{e}^{c}\left(x_{i}\right)\right)\right]$$
参数生成网络 文章中的主要模型仍然是 Bi-LSTM+CRF。参数生成网络是要动态地生成 Bi-LSTM 的参数,以达到跨领域跨任务地转移知识的目的。
$$\theta_{\mathrm{LSTM}}^{d, t}=\mathbf{W} \otimes \mathbf{I}_{d}^{D} \otimes \mathbf{I}_{t}^{T}$$
W 是维度为 $P^{(LSTM)} × V × U$的三维张量,$\mathbf{I}_{d}^{D} \in R^{U}$是领域向量,$\mathbf{I}_{t}^{T} \in R^{V}$是任务向量。三者通过张量的 contraction 操作得到最后的参数(contraction 解释:https://www.zhihu.com/question/286175595/answer/456304314),最终得到的维度是$P^{(LSTM)}$,也就是LSTM的参数。领域向量有两种取值:源域和目标域,任务向量则对应NER和LM,他们自身都是可训练参数,随着模型训练而更新。本质上是学习通用的领域表示和任务表示来进行迁移,类似于meta-learning的思想。
输出层
- NER:得到了 Bi-LSTM 的输出后,使用 CRF 做输出层。需要注意的是论文中针对源域和目标域分别使用了两个 CRF,如果是无监督领域迁移则目标领域没有CRF。
- 语言模型:语言模型采用了比较传统的 Bi-LSTM 结构,搭配负采样,训练前后向的语言模型。
训练目标 整个训练目标由两部分组成,NER 的损失和语言模型的损失,整体的损失函数如下:
$$\mathcal{L}=\sum_{d \in\{s r c, t g t\}} \lambda^{d}\left(\mathcal{L}_{n e r}^{d}+\lambda^{t} \mathcal{L}_{l m}^{d}\right)+\frac{\lambda}{2}|\Theta|^{2}$$
Experiment
Data
源领域的 NER 数据来自 CoNLL-2003,源领域的语言模型使用来自路透社的 377592 条句子训练。目标领域的数据来自三部分:生物医药领域的 BioNLP13PC (13PC) 和 BioNLP13CG (13CG) 还有一份作者收集标注的科技领域的数据集。数据集的统计信息如下表所示:
CoNLL-2003 包括了四种实体类型:PER、LOC、ORG、MISC。BioNLP13PC 包括了五种实体类型:CHEM、CC、 G/p、SPE、CELL,BioNLP13CG 包括三种试实体类型:CHEM, CC 和 G/P,目标领域的语言模型直接使用这些数据集的文本训练。作者团队自己标注的数据集来自 CBS (https://www.cbsnews.com/)。标注规则遵守 CoNLL-2013 标注,也是四种实体,和 CoNLL-2013 不同的是,数据集中科技类型的实体居多,比如“Space X”,“bitcoin“和”IP”。相应的,语言模型使用 398990 条为标注句子训练。
Results
Supervised Domain Adaptation
Unsupervised Domain Adaptation
在有监督的领域迁移 NER 上,作者把模型与 STM(单模型,无迁移)、多任务(完全共享参数)、fine-tune 方法进行对比,发现一些类型的实体识别直接使用多任务方法效果是非常差的,而本文的方法一直是最优的。可见,同样是多任务学习,参数生成网络带来的提升是巨大的。
Conclusion
本文通过未标注文本引入语言建模任务来辅助 NER 领域自适应任务,使用参数生成网络建模跨领域和跨任务,分别得到任务向量和领域向量,实验证明在监督和无监督领域适应上都取得很好的效果。